package es.indra.malaga.entity;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

@Entity
@Table(name = "profesor")
public class ProfesorBeanDAO {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "IDPROFESOR", nullable = false, columnDefinition = "Identificador del profesor")
	private Integer idProfesor;

	@Column(name = "NOMBRE", nullable = false)
	private String nombre;

	@Column(name = "APELLIDOS", nullable = false)
	private String apellidos;

	@Column(name = "DNI", nullable = false)
	private String dni;

	@Column(name = "SEXO", nullable = false, length = 1)
	private String sexo;

	@Column(name = "FECHANACIMIENTO", nullable = false)
	private String fechaNacimiento;

	@ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.ALL })
	@JoinColumn(name = "CODASIGNATURA", referencedColumnName = "CODASIGNATURA")
	private AsignaturaBeanDAO asignaturaBeanDAO;

	@ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.ALL })
	@JoinColumn(name = "CODUSUARIO", referencedColumnName = "ID_USUARIO")
	private UsuarioBeanDAO usuarioBeanDAO;

	/**
	 * 
	 */
	public ProfesorBeanDAO() {
		super();
	}

	/**
	 * @return the idProfesor
	 */
	public Integer getIdProfesor() {
		return idProfesor;
	}

	/**
	 * @param idProfesor
	 *            the idProfesor to set
	 */
	public void setIdProfesor(Integer idProfesor) {
		this.idProfesor = idProfesor;
	}

	/**
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}

	/**
	 * @param nombre
	 *            the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	/**
	 * @return the apellidos
	 */
	public String getApellidos() {
		return apellidos;
	}

	/**
	 * @param apellidos
	 *            the apellidos to set
	 */
	public void setApellidos(String apellidos) {
		this.apellidos = apellidos;
	}

	/**
	 * @return the dni
	 */
	public String getDni() {
		return dni;
	}

	/**
	 * @param dni
	 *            the dni to set
	 */
	public void setDni(String dni) {
		this.dni = dni;
	}

	/**
	 * @return the sexo
	 */
	public String getSexo() {
		return sexo;
	}

	/**
	 * @param sexo
	 *            the sexo to set
	 */
	public void setSexo(String sexo) {
		this.sexo = sexo;
	}

	/**
	 * @return the fechaNacimiento
	 */
	public String getFechaNacimiento() {
		return fechaNacimiento;
	}

	/**
	 * @param fechaNacimiento
	 *            the fechaNacimiento to set
	 */
	public void setFechaNacimiento(String fechaNacimiento) {
		this.fechaNacimiento = fechaNacimiento;
	}

	/**
	 * @return the asignaturaBeanDAO
	 */
	public AsignaturaBeanDAO getAsignaturaBeanDAO() {
		return asignaturaBeanDAO;
	}

	/**
	 * @param asignaturaBeanDAO
	 *            the asignaturaBeanDAO to set
	 */
	public void setAsignaturaBeanDAO(AsignaturaBeanDAO asignaturaBeanDAO) {
		this.asignaturaBeanDAO = asignaturaBeanDAO;
	}

	/**
	 * @return the usuarioBeanDAO
	 */
	public UsuarioBeanDAO getUsuarioBeanDAO() {
		return usuarioBeanDAO;
	}

	/**
	 * @param usuarioBeanDAO
	 *            the usuarioBeanDAO to set
	 */
	public void setUsuarioBeanDAO(UsuarioBeanDAO usuarioBeanDAO) {
		this.usuarioBeanDAO = usuarioBeanDAO;
	}

}
